{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CustomerID</th>\n",
       "      <th>Genre</th>\n",
       "      <th>Age</th>\n",
       "      <th>Annual Income (k$)</th>\n",
       "      <th>Spending Score (1-100)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Male</td>\n",
       "      <td>19</td>\n",
       "      <td>15</td>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Male</td>\n",
       "      <td>21</td>\n",
       "      <td>15</td>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Female</td>\n",
       "      <td>20</td>\n",
       "      <td>16</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>Female</td>\n",
       "      <td>23</td>\n",
       "      <td>16</td>\n",
       "      <td>77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>Female</td>\n",
       "      <td>31</td>\n",
       "      <td>17</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CustomerID   Genre  Age  Annual Income (k$)  Spending Score (1-100)\n",
       "0           1    Male   19                  15                      39\n",
       "1           2    Male   21                  15                      81\n",
       "2           3  Female   20                  16                       6\n",
       "3           4  Female   23                  16                      77\n",
       "4           5  Female   31                  17                      40"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas\n",
    "dataset = pandas.read_csv('data/customers.csv')\n",
    "dataset.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "X = dataset.iloc[:, [3, 4]].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from sklearn.cluster import KMeans\n",
    "kmeans = KMeans(n_clusters = 5, init = 'k-means++', random_state = 42)\n",
    "y_kmeans = kmeans.fit_predict(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "44448.455447933709"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kmeans.inertia_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nto/RAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xc154fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "wcss = []\n",
    "for i in range(1, 11):\n",
    "    kmeans = KMeans(n_clusters = i, init = 'k-means++', random_state = 42)\n",
    "    kmeans.fit(X)\n",
    "    wcss.append(kmeans.inertia_)\n",
    "plt.plot(range(1, 11), wcss)\n",
    "plt.title('The Elbow Method')\n",
    "plt.xlabel('Number of clusters')\n",
    "plt.ylabel('WCSS')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Silhouette Coefficient: 0.554\n"
     ]
    }
   ],
   "source": [
    "from sklearn import metrics\n",
    "print(\"Silhouette Coefficient: %0.3f\" % metrics.silhouette_score(X, y_kmeans))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "sil = []\n",
    "for i in range(2, 11):\n",
    "    kmeans = KMeans(n_clusters = i, init = 'k-means++', random_state = 42)\n",
    "    y_kmeans = kmeans.fit_predict(X)\n",
    "    sil.append(metrics.silhouette_score(X, y_kmeans))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.29689691625030079,\n",
       " 0.46761358158775435,\n",
       " 0.49319631092490468,\n",
       " 0.55393199744464805,\n",
       " 0.53976103063432002,\n",
       " 0.52642837036857282,\n",
       " 0.45827056882053113,\n",
       " 0.4565077334305076,\n",
       " 0.45925273534781125]"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sil"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nHUl6sjCz8vDR11fDRVcCMySNBH4F3CNpAEHH9nVmtgZA0peAOQRNUreZWclHj+6ccy4VUlJQyMxm\nA7P3sfrofezzDHBYkkJyzjm3H/wNbuecc3F5snDOOReXJwvnnHNxebJwzjkXlycL55xzcXmycM45\nF5fMLOoYWoWkncCqqONIsb7A1qiDSDE/5/bBzzl1hptZ3HpJmTRw8yozK4w6iFSSVOTnnPn8nNuH\ntn7O3gzlnHMuLk8Wzjnn4sqkZHFf1AFEwM+5ffBzbh/a9DlnTAe3c8655MmkOwvnnHNJ4snCOedc\nXJ4snHMuIpI6SUqLoRgyIllIOk/SOklrJF0SdTzJJqmjpPskrZZUIunbUceUCpLyJK2Q9LuoY0kV\nST0k/VVSqaS1kvKijimZJF0h6e3w/+f/ijqeZJHUXdLjwLvAd2KWf1PSekmrJLWp0UHTvoNbUjdg\nBcGQrPXAYmCCmW2JNLAkktQHmA48CvQBlgOFZpbR45RLuh44CthkZpdGHE5KSPofYDVwM9AB2GPp\n/j/tPkgqAOYB44GOwDvAYDPbHV1UySGpK8HAb4cAx5jZpeHooU8DU4F84HmCt6vroov0A5lwZzET\nmG9mpWZWDrwInBJxTEllZu+Z2SMW2ApsAHpGHVcySRoLHAn8LepYUkXSQIIx628J/61rMjVRhBov\nig0E1SV2ArXRhZM8ZrbLzF4A9sYsPgf4m5ntNLMVQDFB4mgTMiFZ5AOx43NvBAZFFEvKSTqc4FfY\nsqhjSRZJAn4BfDPqWFJsPLAOeCRslrg9/LvISGZWClwPvEbwq/qCtvKrOkXa9LUsE5JFHsEvkUYN\nBM1RGU9SX+APwBcz/BfnfwLzzGxN1IGkWH9gHPB14AjgeGBWpBElkaTuwAUEPwp+BlwpKZPq18XT\npq9lmfAPUUbQft9oKPDvaEJJHUm9gLnANWa2IOp4kuzzQDdJ/wH0BrpIWmVmP404rmTbDCw0s40A\nkp4DRkcbUlJ9DlhiZvOAeZLOAU4laMdvD8qAITHzQwmamNuETLizeBaYKal/TBvvsxHHlFThL7A5\nwE1mlvH/I5nZcWY2wcwmAz8EHmsHiQKC5phxkgZL6gB8HCiKOKZkqgEmS8oNH1w5DNgWcUyp9CRw\nvqTOksYR/DBaHHFM70v7OwszK5d0LfBquOjKTHx6oolvAFOAOyXdGS6bYWbvRBiTa2VmtlvS14Hn\nCJ6Emm1mL0UcVjL9ETiZ4CmoauBBM3u15V3SU5gMFwHdgI6SpgOXEfwdLCdInJe2pebltH901jnn\nXPJlQjOUc865JPNk4ZxzLi5PFs455+LyZOGccy4uTxbOOefi8mThnHMuLk8WzoUkTZf0fAq+Z7ik\nhZISfnlU0jxJJyQzLuda4snCpRVJJumOJsvS7UL6VeBRM5vRdIWk0ZKekLQxHNfgoYP5Ikk/P5j9\nnWvkycKlmwbgLEkTog4k1n5Wg+3Ph6uLNh5jOPC/wINAvpkNA753kKF9/SD3dw7wZOHSjwFXA/c0\nd4GWtDdm+uLGUfUkzZZ0t6Q3wtEFT5L0tKRNkm6KOUSOpP8Jt3lKUo9w/ymSXgtHcfudpKyw2eqf\nkhov8LFxZEm6OSwt/o6kG8LlVwOfAm6XdEuT8L8L/NrMHm0s89C0hIukAklrYuavl/T9cPr7Ydwl\nkiZKeh3IVjCC5McVDOH5oKSV4bmMCfcrlvQTSeWSukr6e3hX89Z+/Lu4DOfJwqUdM3sE2AFcvJ+7\nDiEYTOaXwD8ISmFPAb4V1uqBYPSyn5vZcKA8XJcD/Br4DzM7FOgCfDLcvhD4L+CiJt91EUFZ8QnA\n4cCpks40sx8TjHB4lZld02SfEzjAIphhFeIrCarSHgq8Y2ZHAfVmNsrMnie4S3nNzMYQjBtxW8wh\ntpnZQIIqr13Du5rjDyQWl5k8Wbh09TXgekm992OfueEv9n8By8xstZm9SzDIzMBwmzfMbFE4/SeC\nZDCG4IL/nKSVBJWNC8JtlpjZmmYKvp0O3GtmtWZWRXDncXKc+AzYsx/nE2sHsB64ExhkZrua2eZ0\ngjEiVhIMJhU7sM6j4Z9LgQmSvsMHI9c558nCpSczWwf8BriF4CLbqCGmeSq3yW6NQ3TW8+GL8l4g\nO2a6USeC6qc5wEozGxN+hptZY8dxcxdlwn0amiyLN5DNMuBjcbaJjRXCczSzeoLxyZcAL0tq7q4g\nBzgnPIfDwjuPRrvC46whuCPqC7wpKaOH63WJ82Th0tntBE03o2KWrQcmhtPxfsk35whJIyRlAZcS\njOm+Chgi6Vh4v/+iR5zjPAd8RVKepE4EAzg9E2ef24AfSno/YSgYNjfWu0AvSf3CGKeH23UB+pjZ\nPcDfCcYrB6iT1CNMoC8DXwm37yrpI+M7S8oHdprZd4BKPriDcu2cJwuXtsyslqA5amjM4quBv0j6\nO3Ag45osJUhCa4GtwANmVg18AZgtaS3wEz5619DUfcBqYCXBuAWPmtkLLe1gZkuAS4Cfhx3v7wCX\nN9mmjmAAqBeBP/PBSGqdgZckvU0wdvcfwuW/C8/pJIJ+imGS1hOMJtlcE95oYJWk1QTNdW/GOU/X\nTvh4Fs455+LyOwvnnHNxebJwzjkXlycL55xzcXmycM45F5cnC+ecc3F5snDOOReXJwvnnHNxebJw\nzjkX1/8D2u9Sc+uhKckAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xc133390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(range(2, 11), sil)\n",
    "plt.xlim([0,11])\n",
    "plt.title('The Silhouette Method')\n",
    "plt.xlabel('Number of Clusters')\n",
    "plt.ylabel('Silhouette Coefficient')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ward 0.552994595515\n",
      "complete 0.552994595515\n",
      "kmeans 0.553931997445\n"
     ]
    }
   ],
   "source": [
    "from sklearn.cluster import AgglomerativeClustering\n",
    "from sklearn.cluster import KMeans\n",
    "\n",
    "# ward\n",
    "ward = AgglomerativeClustering(n_clusters = 5, affinity = 'euclidean', linkage = 'ward')\n",
    "y_ward = ward.fit_predict(X)\n",
    "\n",
    "#complete\n",
    "complete = AgglomerativeClustering(n_clusters = 5, affinity = 'euclidean', linkage = 'complete')\n",
    "y_complete = complete.fit_predict(X)\n",
    "\n",
    "# kmeans\n",
    "kmeans = KMeans(n_clusters = 5, init = 'k-means++', random_state = 42)\n",
    "y_kmeans = kmeans.fit_predict(X)\n",
    "\n",
    "for est, title in zip([y_ward,y_complete, y_kmeans], ['ward', 'complete', 'kmeans']):\n",
    "    print(title, metrics.silhouette_score(X, est))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
